1. Field of the Invention
This invention relates to a method for processing high dynamic range images for printing, and in particular, it relates to such a method using tone mapping and subsequent processing by Windows Color System (WCS).
2. Description of Related Art
A high dynamic range (HDR) image is an image with a high contrast between the maximum and minimum brightness colors, for example, up to 10000:1 or higher. Non-HDR images typically have smaller dynamic ranges, such as 1000:1, 256:1, or less, and are usually represented as 256 shades of red, green, and blue, or of cyan, magenta, and yellow, device primaries. An example of an HDR image is a digital photograph, although HDR images can be acquired in a variety of ways including computer generated images.
In order to print an HDR image by a printer (referred to as an output device), the image must first be rendered into colors supported by the printer. Typically, the range of colors that it is possible to produce on a printer, with ink or toner, is much smaller than the range that can be captured by a camera (referred to as the input device) which measures amounts of light. This is because of the limit of brightness available with ink or toner versus the brightness of light and the sensitivity of digital capture devices, such as digital cameras, to such light. During printing, the much greater range of colors captured by the input device must be fitted into the smaller range that it is possible to print. The process of fitting colors from the input device into the range and specific contours representing the color capabilities of the output device (referred to as the color gamut) is generally referred to as gamut mapping.
A special problem exists when the input range is extremely large compared the output range. If the straightforward approach of simply scaling the input values to within the smaller range is attempted, many colors will become too dim to be seen, after scaling, and much of the subtle gradations between colors would also be lost. Another possible approach is clipping of out-of-range colors or a combination of clipping of extreme colors and scaling of less extreme colors. For some high dynamic range images, the clipping of some mid-range colors would result in problematic renderings that appear unrealistic, and the clipping of high-range colors may require more time to process.
A more sophisticated approach commonly referred to as “tone mapping” can be employed. Tone mapping generally refers to an image processing technique to map one set of colors to another in order to approximate the appearance of HDR images in a medium that has a more limited dynamic range. Many known tone mapping algorithms have been described. One particular example is an algorithm known as iCAM06, described in “iCAM06: A refined image appearance model for HDR image rendering,” J. Kuang et al., J. Vis. Commun. Image R. 18 (2007) 406-414. In this algorithm, colors are tone mapped to roughly within the range of an intermediate destination device, and then scaled and clipped to the specific contours representing the color capabilities of the output device. However, the process of scaling and clipping can suffer from similar problems as noted above (the problems would just be limited to a smaller set of colors).
Windows Color System (WCS) is a color management scheme used on Windows Vista™ and later operating systems. WCS can convert colors from a source device to within the color gamut of a destination device (such as an output device). This conversion process includes gamut mapping. Using the programming interface to WCS, a preliminary step before converting colors is to create a color “transform”. Two types of transform can be created, an optimized transform and a sequential transform. An optimized transform is created by applying gamut mapping and other color conversion steps to a sampling of colors within the gamut of the source device. The information obtained in that step and encapsulated in the transform can then be used to convert specific colors of an image by estimating an appropriate value by interpolation of nearby colors in the converted sample set. In other words, it is a kind of lookup table. On the other hand, in a sequential transform, all steps of the conversion process are applied sequentially to each color in the image, and estimation is not required.